package com.cn.wanxi.servlet.company;

import com.alibaba.fastjson.JSONObject;
import com.cn.wanxi.model.CompanyModel;
import com.cn.wanxi.model.ResultModel;
import com.cn.wanxi.service.CompanyService;
import com.cn.wanxi.service.impl.CompanyServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 所有用浏览器访问后台默认都用get方法
 * doget和dopost的区别？
 * 如果前端传递过来的数据有私密信息 不能用get
 * 如果前端传递过来不是字符串：是文件，不能用get
 * -------------------------
 * 以后查询用get
 * 其他都用post
 */
@WebServlet("/back/company/add")
public class CompanyAddServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        1.乱码处理
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");
//          2.接收前端的数据
        String name = req.getParameter("name");
        String phone = req.getParameter("phone");
//        3.将所有传递过来的数据保证到一个对象里面
        CompanyModel companyModel = new CompanyModel();
        companyModel.setName(name);
        companyModel.setPhone(phone);
        System.out.println(name + "__________" + phone);
//        servlet ---service ---dao
//        4.调用service层，将数据保存到数据库，
        CompanyService companyService = new CompanyServiceImpl();
//        5.得到返回值：增加数据--
        ResultModel resultModel = companyService.add(companyModel);
//        需要将返回值返回给前端 ，前后端数据都以json对象进行传递,
//        后端直接一对象的形式传递
//        需要将当前返回值封装到一个对象里面
//        ajax jquery layui
//        所以，以下面的情况是得不到数据的
//        resp.getWriter().println(resultModel.toString());
//        JSONObject jsonObject = new JSONObject();
//        jsonObject.put("pp", resultModel);
//        6.将结果转发到页面
        resp.getWriter().println(JSONObject.toJSON(resultModel));
    }
}
